<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BOSS Afterburner: BOSSOutputLoader Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">BOSS Afterburner
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classBOSSOutputLoader.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classBOSSOutputLoader-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">BOSSOutputLoader Class Reference<div class="ingroups"><a class="el" href="group__Afterburner__objects.html">Helper objects</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>General container for BOSS analysis output This object only needs a path of a directory containin ROOT files from the initial analysis or of one such root file.  
 <a href="classBOSSOutputLoader.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Constructors</div></td></tr>
<tr class="memitem:a10870242930d8d48ded8bde0575a2233"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a10870242930d8d48ded8bde0575a2233">BOSSOutputLoader</a> ()</td></tr>
<tr class="separator:a10870242930d8d48ded8bde0575a2233"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dbbb2ddbf28d5a4db63e9849a05d05d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a0dbbb2ddbf28d5a4db63e9849a05d05d">BOSSOutputLoader</a> (const TString &amp;directoryPath, bool print_branches=true, bool print_averages=false)</td></tr>
<tr class="memdesc:a0dbbb2ddbf28d5a4db63e9849a05d05d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that opens a <code>TFile</code> and unordered_maps its contents.  <a href="#a0dbbb2ddbf28d5a4db63e9849a05d05d">More...</a><br /></td></tr>
<tr class="separator:a0dbbb2ddbf28d5a4db63e9849a05d05d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Draw</div></td></tr>
<tr class="memitem:a72fe36425b77dd4dbfd87c93d2d1965e"><td class="memItemLeft" align="right" valign="top">const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a72fe36425b77dd4dbfd87c93d2d1965e">HasChain</a> (const std::string &amp;chainName) const</td></tr>
<tr class="memdesc:a72fe36425b77dd4dbfd87c93d2d1965e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if file has chain with name <code>chainName</code>.  <a href="#a72fe36425b77dd4dbfd87c93d2d1965e">More...</a><br /></td></tr>
<tr class="separator:a72fe36425b77dd4dbfd87c93d2d1965e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47206d882287c355c265687c93b34861"><td class="memItemLeft" align="right" valign="top">TH1F *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a47206d882287c355c265687c93b34861">Draw</a> (const char *chainName, const char *branchX, const Int_t nBinx, const double x1, const double x2, Option_t *option=&quot;&quot;, const TString &amp;logScale=&quot;&quot;, const char *cut=&quot;&quot;)</td></tr>
<tr class="memdesc:a47206d882287c355c265687c93b34861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the distributions of all branches available in the ROOT file.  <a href="#a47206d882287c355c265687c93b34861">More...</a><br /></td></tr>
<tr class="separator:a47206d882287c355c265687c93b34861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21a8dfa6f931309f2a299be7eaa70896"><td class="memItemLeft" align="right" valign="top">TH2F *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a21a8dfa6f931309f2a299be7eaa70896">Draw</a> (const char *chainName, const char *branchX, const char *branchY, const Int_t nBinx, const double x1, const double x2, const Int_t nBiny, const double y1, const double y2, Option_t *option=&quot;&quot;, const TString &amp;logScale=&quot;&quot;, const char *cut=&quot;&quot;)</td></tr>
<tr class="memdesc:a21a8dfa6f931309f2a299be7eaa70896"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the distributions of all branches available in the ROOT file.  <a href="#a21a8dfa6f931309f2a299be7eaa70896">More...</a><br /></td></tr>
<tr class="separator:a21a8dfa6f931309f2a299be7eaa70896"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c15cb54f33733a2c67c3c4ecf7b7839"><td class="memItemLeft" align="right" valign="top">TH1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a5c15cb54f33733a2c67c3c4ecf7b7839">Draw</a> (const char *chainName, const char *branchNames, const char *cut=&quot;&quot;, Option_t *option=&quot;&quot;, const TString &amp;logScale=&quot;&quot;)</td></tr>
<tr class="memdesc:a5c15cb54f33733a2c67c3c4ecf7b7839"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the distributions of all branches available in the ROOT file.  <a href="#a5c15cb54f33733a2c67c3c4ecf7b7839">More...</a><br /></td></tr>
<tr class="separator:a5c15cb54f33733a2c67c3c4ecf7b7839"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85fd5d2940a35b455723161299785d76"><td class="memItemLeft" align="right" valign="top">TH1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a85fd5d2940a35b455723161299785d76">Draw</a> (const <a class="el" href="classBranchPlotOptions.html">BranchPlotOptions</a> &amp;options)</td></tr>
<tr class="memdesc:a85fd5d2940a35b455723161299785d76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the distributions of all branches available in the ROOT file.  <a href="#a85fd5d2940a35b455723161299785d76">More...</a><br /></td></tr>
<tr class="separator:a85fd5d2940a35b455723161299785d76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25289bafb33d3c18d2d7a6217df3714d"><td class="memItemLeft" align="right" valign="top">TH1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a25289bafb33d3c18d2d7a6217df3714d">Draw</a> (const char *tree, const YAML::Node &amp;options)</td></tr>
<tr class="memdesc:a25289bafb33d3c18d2d7a6217df3714d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the distributions of all branches available in the ROOT file.  <a href="#a25289bafb33d3c18d2d7a6217df3714d">More...</a><br /></td></tr>
<tr class="separator:a25289bafb33d3c18d2d7a6217df3714d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc863db0f96ba89c94892e772fa18b6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#afc863db0f96ba89c94892e772fa18b6a">DrawAndSaveAllBranches</a> (const char *chainName, Option_t *option=&quot;&quot;, const TString &amp;logScale=&quot;&quot;)</td></tr>
<tr class="memdesc:afc863db0f96ba89c94892e772fa18b6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the distributions of all branches available in the ROOT file.  <a href="#afc863db0f96ba89c94892e772fa18b6a">More...</a><br /></td></tr>
<tr class="separator:afc863db0f96ba89c94892e772fa18b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b0aaf2ebe76331ec2344954d62829ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a5b0aaf2ebe76331ec2344954d62829ae">QuickDrawAndSaveAll</a> (Option_t *option=&quot;&quot;)</td></tr>
<tr class="memdesc:a5b0aaf2ebe76331ec2344954d62829ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the distributions of all branches available in the ROOT file.  <a href="#a5b0aaf2ebe76331ec2344954d62829ae">More...</a><br /></td></tr>
<tr class="separator:a5b0aaf2ebe76331ec2344954d62829ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Print</div></td></tr>
<tr class="memitem:a807591427984893d638714c96a1479bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a807591427984893d638714c96a1479bc">Print</a> ()</td></tr>
<tr class="memdesc:a807591427984893d638714c96a1479bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print information about all trees in the <code>TFile</code>.  <a href="#a807591427984893d638714c96a1479bc">More...</a><br /></td></tr>
<tr class="separator:a807591427984893d638714c96a1479bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad765f5b4b8f81b3c36cfff1bbfd96261"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#ad765f5b4b8f81b3c36cfff1bbfd96261">Print</a> (const char *nameOfTree, Option_t *option=&quot;toponly&quot;)</td></tr>
<tr class="memdesc:ad765f5b4b8f81b3c36cfff1bbfd96261"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print information about a certain tree.  <a href="#ad765f5b4b8f81b3c36cfff1bbfd96261">More...</a><br /></td></tr>
<tr class="separator:ad765f5b4b8f81b3c36cfff1bbfd96261"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a338edf7defc51792b6fb191e6bc04c5c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a338edf7defc51792b6fb191e6bc04c5c">PrintCutFlow</a> ()</td></tr>
<tr class="memdesc:a338edf7defc51792b6fb191e6bc04c5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method that prints the number of entries of each <code>TChain</code> in the ROOT file. This allows you to get an idea of the cut flow of the original macro. (Of course, have a look at your original source code <code>.cxx</code> to see what these numbers mean.)  <a href="#a338edf7defc51792b6fb191e6bc04c5c">More...</a><br /></td></tr>
<tr class="separator:a338edf7defc51792b6fb191e6bc04c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a757c913adfb8b45acdc4da2c1914a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTable.html">Table</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a0a757c913adfb8b45acdc4da2c1914a5">PrintCuts</a> (bool print=true)</td></tr>
<tr class="memdesc:a0a757c913adfb8b45acdc4da2c1914a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function creates a <code>list</code> of <code>TableEntry</code>s from the <code>"_cutvalues"</code> branch which is then printed. The function is backward compatible with older versions of BOSS IniSelect output.  <a href="#a0a757c913adfb8b45acdc4da2c1914a5">More...</a><br /></td></tr>
<tr class="separator:a0a757c913adfb8b45acdc4da2c1914a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6b31be6592bb875b35726e05e93253d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#aa6b31be6592bb875b35726e05e93253d">PrintTrees</a> (Option_t *option=&quot;&quot;)</td></tr>
<tr class="separator:aa6b31be6592bb875b35726e05e93253d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Getters</div></td></tr>
<tr class="memitem:a325eb4a68ebe6ecc7a0f8b34c7276208"><td class="memItemLeft" align="right" valign="top">Long64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a325eb4a68ebe6ecc7a0f8b34c7276208">GetEntries</a> (const char *chainName)</td></tr>
<tr class="memdesc:a325eb4a68ebe6ecc7a0f8b34c7276208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of events in one of the <code>TChain</code>s.  <a href="#a325eb4a68ebe6ecc7a0f8b34c7276208">More...</a><br /></td></tr>
<tr class="separator:a325eb4a68ebe6ecc7a0f8b34c7276208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a733e14f4d592d0d67595e71e4990105b"><td class="memItemLeft" align="right" valign="top">Long64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a733e14f4d592d0d67595e71e4990105b">GetLargestEntries</a> () const</td></tr>
<tr class="memdesc:a733e14f4d592d0d67595e71e4990105b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the largest number of events in all of the <code>TChain</code>s in the loaded ROOT file.  <a href="#a733e14f4d592d0d67595e71e4990105b">More...</a><br /></td></tr>
<tr class="separator:a733e14f4d592d0d67595e71e4990105b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c60d59cd8bd7de265628ea498e3ea71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classChainLoader.html">ChainLoader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a9c60d59cd8bd7de265628ea498e3ea71">GetChainLoader</a> (const std::string &amp;chainName)</td></tr>
<tr class="separator:a9c60d59cd8bd7de265628ea498e3ea71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dabf46d21a855f9a714179c0dbb8dcb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classChainLoader.html">ChainLoader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a7dabf46d21a855f9a714179c0dbb8dcb">operator[]</a> (const std::string &amp;chainName)</td></tr>
<tr class="separator:a7dabf46d21a855f9a714179c0dbb8dcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d69532766ad2d4d394c80de47c68fe6"><td class="memItemLeft" align="right" valign="top">TChain &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a9d69532766ad2d4d394c80de47c68fe6">GetChain</a> (const std::string &amp;chainName)</td></tr>
<tr class="memdesc:a9d69532766ad2d4d394c80de47c68fe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look for a tree in the files and get its <code>TChain</code>.  <a href="#a9d69532766ad2d4d394c80de47c68fe6">More...</a><br /></td></tr>
<tr class="separator:a9d69532766ad2d4d394c80de47c68fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa36aa4288371751fa49e6ff0829822e7"><td class="memTemplParams" colspan="2">template&lt;typename TYPE &gt; </td></tr>
<tr class="memitem:aa36aa4288371751fa49e6ff0829822e7"><td class="memTemplItemLeft" align="right" valign="top">TYPE &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#aa36aa4288371751fa49e6ff0829822e7">GetBranch</a> (const std::string &amp;chainName, const std::string &amp;branchName)</td></tr>
<tr class="memdesc:aa36aa4288371751fa49e6ff0829822e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a certain branch with name <code>branchName</code> in TTree with name <code>chainName</code>.  <a href="#aa36aa4288371751fa49e6ff0829822e7">More...</a><br /></td></tr>
<tr class="separator:aa36aa4288371751fa49e6ff0829822e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22c84833e080e2adc4521e441d8409b4"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; std::string, <a class="el" href="classChainLoader.html">ChainLoader</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a22c84833e080e2adc4521e441d8409b4">GetChains</a> ()</td></tr>
<tr class="separator:a22c84833e080e2adc4521e441d8409b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Helper methods</div></td></tr>
<tr class="memitem:a20eeede977e8fad3ee426d9e29f1eaba"><td class="memItemLeft" align="right" valign="top">std::list&lt; <a class="el" href="classChainLoader.html">ChainLoader</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a20eeede977e8fad3ee426d9e29f1eaba">CreateOrderedMap</a> ()</td></tr>
<tr class="memdesc:a20eeede977e8fad3ee426d9e29f1eaba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <code>list</code> that is ordered by the number of entries in the <code>TChain</code>.  <a href="#a20eeede977e8fad3ee426d9e29f1eaba">More...</a><br /></td></tr>
<tr class="separator:a20eeede977e8fad3ee426d9e29f1eaba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e2e3f05b3ddb07c5f202f0c5cf97925"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a6e2e3f05b3ddb07c5f202f0c5cf97925">LoadChains</a> (bool print_branches=true, bool print_averages=false)</td></tr>
<tr class="memdesc:a6e2e3f05b3ddb07c5f202f0c5cf97925"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a list of <code>TChain</code>s based on the files in the directory you are loading.  <a href="#a6e2e3f05b3ddb07c5f202f0c5cf97925">More...</a><br /></td></tr>
<tr class="separator:a6e2e3f05b3ddb07c5f202f0c5cf97925"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Data members</div></td></tr>
<tr class="memitem:aa606084dd00882bf3d3c6df65bf030e1"><td class="memItemLeft" align="right" valign="top">TString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#aa606084dd00882bf3d3c6df65bf030e1">fDirectoryPath</a></td></tr>
<tr class="memdesc:aa606084dd00882bf3d3c6df65bf030e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The path of the directory that was was used to load the ROOT files and generate the <code>TChain</code>s in this object.  <a href="#aa606084dd00882bf3d3c6df65bf030e1">More...</a><br /></td></tr>
<tr class="separator:aa606084dd00882bf3d3c6df65bf030e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d05057e51efd2e106695b66c7e13f69"><td class="memItemLeft" align="right" valign="top">std::list&lt; TString &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a6d05057e51efd2e106695b66c7e13f69">fFileNames</a></td></tr>
<tr class="memdesc:a6d05057e51efd2e106695b66c7e13f69"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of filenames that were loaded from the directory.  <a href="#a6d05057e51efd2e106695b66c7e13f69">More...</a><br /></td></tr>
<tr class="separator:a6d05057e51efd2e106695b66c7e13f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27d97a8c969aea30e646cf852667f942"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; std::string, <a class="el" href="classChainLoader.html">ChainLoader</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBOSSOutputLoader.html#a27d97a8c969aea30e646cf852667f942">fChains</a></td></tr>
<tr class="memdesc:a27d97a8c969aea30e646cf852667f942"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map of <code>TChain</code>s of the loaded ROOT files (contained withing <code><a class="el" href="classChainLoader.html" title="A container class for a TChain that allows easy access to its branches. ">ChainLoader</a></code>).  <a href="#a27d97a8c969aea30e646cf852667f942">More...</a><br /></td></tr>
<tr class="separator:a27d97a8c969aea30e646cf852667f942"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>General container for BOSS analysis output This object only needs a path of a directory containin ROOT files from the initial analysis or of one such root file. </p>
<p>All <code>TTree</code>s and the branches in these files will be loaded automatically, so you don't have to worry about names of those trees. This object also comes with several methods that faciliate e.g. plotting of the <code>TTree</code> contents.</p>
<p><b>Motivation:</b> To investigate the contents of the ROOT file, you first need to know which <code>TTree</code>s and branches it contains. If you simply construct the <code><a class="el" href="classBOSSOutputLoader.html" title="General container for BOSS analysis output This object only needs a path of a directory containin ROO...">BOSSOutputLoader</a></code> by giving it a file name, all <code>TTree</code>s will be loaded automatically as well as addresses for each of their branches. Five the constructer <code>true</code> as its second argument, and the names of these <code>TTree</code>s, their branches, and the types of these branches (behind the slash <code>/</code> after the name) will be printed to the terminal. <b>Do this if your macro throws an exception, because this probably means that you use the wrong names for the trees and or the branches further on in the macro.</b> </p><dl class="section author"><dt>Author</dt><dd>Remco de Boer 雷穆克 (<a href="#" onclick="location.href='mai'+'lto:'+'r.e'+'.d'+'ebo'+'er'+'@st'+'ud'+'ent'+'s.'+'uu.'+'nl'; return false;">r.e.d<span style="display: none;">.nosp@m.</span>eboe<span style="display: none;">.nosp@m.</span>r@stu<span style="display: none;">.nosp@m.</span>dent<span style="display: none;">.nosp@m.</span>s.uu.<span style="display: none;">.nosp@m.</span>nl</a> or <a href="#" onclick="location.href='mai'+'lto:'+'rem'+'co'+'.de'+'.b'+'oer'+'@i'+'hep'+'.a'+'c.c'+'n'; return false;">remco<span style="display: none;">.nosp@m.</span>.de.<span style="display: none;">.nosp@m.</span>boer@<span style="display: none;">.nosp@m.</span>ihep<span style="display: none;">.nosp@m.</span>.ac.c<span style="display: none;">.nosp@m.</span>n</a>) </dd></dl>
<dl class="section date"><dt>Date</dt><dd>October 24th, 2018 </dd></dl>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8h_source.html#l00023">23</a> of file <a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a10870242930d8d48ded8bde0575a2233"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10870242930d8d48ded8bde0575a2233">&#9670;&nbsp;</a></span>BOSSOutputLoader() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">BOSSOutputLoader::BOSSOutputLoader </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8h_source.html#l00028">28</a> of file <a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>.</p>

</div>
</div>
<a id="a0dbbb2ddbf28d5a4db63e9849a05d05d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0dbbb2ddbf28d5a4db63e9849a05d05d">&#9670;&nbsp;</a></span>BOSSOutputLoader() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOSSOutputLoader::BOSSOutputLoader </td>
          <td>(</td>
          <td class="paramtype">const TString &amp;&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>print_branches</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>print_averages</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor that opens a <code>TFile</code> and unordered_maps its contents. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>Modulate functions (one task, one level of abstraction) and monadic (single argument) at most. Only then does a default constructor make sense. </dd></dl>
<ol>
<li>
Make an inventory of ROOT files in input directory and add filenames to the <code>fFileNames</code> list. </li>
<li>
<p class="startli">If <code>path</code> ends in <code>".root"</code>, treat as <em>single ROOT file</em> and attempt to load it.</p>
<ul>
<li>
<p class="startli">Abort if <code>path</code> cannot be loaded as ROOT file.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Extract directory and file name from input <code>path</code>.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Add resulting file name to <code>fFileNames</code> and continue loading as <code>TChain</code>.</p>
<p class="endli"></p>
</li>
</ul>
<p class="endli"></p>
</li>
<li>
<p class="startli">Else, treat <code>path</code> as <em>path to directory</em> and make an inventory of ROOT files in this directory.</p>
<ul>
<li>
<p class="startli">Remove trailing slash <code>/</code> from <code>fDirectoryPath</code></p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Open file directory using <code>TSystemDirectory</code>.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Abort if directory is empty.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Loop over list of files in directory</p>
<p>and add file name if file exists and is no zombie.</p>
<p class="endli"></p>
</li>
</ul>
<p class="endli"></p>
</li>
<li>
<p class="startli">Execute <code>LoadChains</code> now that the <code>fFileNames</code> list has been loaded.</p>
<p class="endli"></p>
</li>
</ol>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00023">23</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a20eeede977e8fad3ee426d9e29f1eaba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20eeede977e8fad3ee426d9e29f1eaba">&#9670;&nbsp;</a></span>CreateOrderedMap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">list&lt; <a class="el" href="classChainLoader.html">ChainLoader</a> * &gt; BOSSOutputLoader::CreateOrderedMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a <code>list</code> that is ordered by the number of entries in the <code>TChain</code>. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00401">401</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a47206d882287c355c265687c93b34861"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47206d882287c355c265687c93b34861">&#9670;&nbsp;</a></span>Draw() <span class="overload">[1/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TH1F * BOSSOutputLoader::Draw </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>chainName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>branchX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Int_t&#160;</td>
          <td class="paramname"><em>nBinx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Option_t *&#160;</td>
          <td class="paramname"><em>option</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TString &amp;&#160;</td>
          <td class="paramname"><em>logScale</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cut</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw the distributions of all branches available in the ROOT file. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00335">335</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a21a8dfa6f931309f2a299be7eaa70896"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21a8dfa6f931309f2a299be7eaa70896">&#9670;&nbsp;</a></span>Draw() <span class="overload">[2/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TH2F * BOSSOutputLoader::Draw </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>chainName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>branchX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>branchY</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Int_t&#160;</td>
          <td class="paramname"><em>nBinx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Int_t&#160;</td>
          <td class="paramname"><em>nBiny</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>y2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Option_t *&#160;</td>
          <td class="paramname"><em>option</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TString &amp;&#160;</td>
          <td class="paramname"><em>logScale</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cut</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw the distributions of all branches available in the ROOT file. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00343">343</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a5c15cb54f33733a2c67c3c4ecf7b7839"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c15cb54f33733a2c67c3c4ecf7b7839">&#9670;&nbsp;</a></span>Draw() <span class="overload">[3/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TH1 * BOSSOutputLoader::Draw </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>chainName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>branchNames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cut</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Option_t *&#160;</td>
          <td class="paramname"><em>option</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TString &amp;&#160;</td>
          <td class="paramname"><em>logScale</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw the distributions of all branches available in the ROOT file. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00353">353</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a85fd5d2940a35b455723161299785d76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85fd5d2940a35b455723161299785d76">&#9670;&nbsp;</a></span>Draw() <span class="overload">[4/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TH1 * BOSSOutputLoader::Draw </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classBranchPlotOptions.html">BranchPlotOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw the distributions of all branches available in the ROOT file. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00360">360</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a25289bafb33d3c18d2d7a6217df3714d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25289bafb33d3c18d2d7a6217df3714d">&#9670;&nbsp;</a></span>Draw() <span class="overload">[5/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TH1 * BOSSOutputLoader::Draw </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>tree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const YAML::Node &amp;&#160;</td>
          <td class="paramname"><em>options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw the distributions of all branches available in the ROOT file. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00373">373</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="afc863db0f96ba89c94892e772fa18b6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc863db0f96ba89c94892e772fa18b6a">&#9670;&nbsp;</a></span>DrawAndSaveAllBranches()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BOSSOutputLoader::DrawAndSaveAllBranches </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>chainName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Option_t *&#160;</td>
          <td class="paramname"><em>option</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TString &amp;&#160;</td>
          <td class="paramname"><em>logScale</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw the distributions of all branches available in the ROOT file. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00387">387</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="aa36aa4288371751fa49e6ff0829822e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa36aa4288371751fa49e6ff0829822e7">&#9670;&nbsp;</a></span>GetBranch()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TYPE &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">TYPE &amp; BOSSOutputLoader::GetBranch </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>chainName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>branchName</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get a certain branch with name <code>branchName</code> in TTree with name <code>chainName</code>. </p>
<dl class="section warning"><dt>Warning</dt><dd>The program will <code>terminate</code> if the branch and/or tree does not exist in the file. </dd></dl>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8h_source.html#l00127">127</a> of file <a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>.</p>

</div>
</div>
<a id="a9d69532766ad2d4d394c80de47c68fe6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d69532766ad2d4d394c80de47c68fe6">&#9670;&nbsp;</a></span>GetChain()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TChain &amp; BOSSOutputLoader::GetChain </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>chainName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Look for a tree in the files and get its <code>TChain</code>. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00100">100</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a9c60d59cd8bd7de265628ea498e3ea71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c60d59cd8bd7de265628ea498e3ea71">&#9670;&nbsp;</a></span>GetChainLoader()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classChainLoader.html">ChainLoader</a> &amp; BOSSOutputLoader::GetChainLoader </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>chainName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00079">79</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a22c84833e080e2adc4521e441d8409b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22c84833e080e2adc4521e441d8409b4">&#9670;&nbsp;</a></span>GetChains()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::unordered_map&lt;std::string, <a class="el" href="classChainLoader.html">ChainLoader</a>&gt;&amp; BOSSOutputLoader::GetChains </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8h_source.html#l00069">69</a> of file <a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>.</p>

</div>
</div>
<a id="a325eb4a68ebe6ecc7a0f8b34c7276208"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a325eb4a68ebe6ecc7a0f8b34c7276208">&#9670;&nbsp;</a></span>GetEntries()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Long64_t BOSSOutputLoader::GetEntries </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>chainName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the number of events in one of the <code>TChain</code>s. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00085">85</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a733e14f4d592d0d67595e71e4990105b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a733e14f4d592d0d67595e71e4990105b">&#9670;&nbsp;</a></span>GetLargestEntries()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Long64_t BOSSOutputLoader::GetLargestEntries </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the largest number of events in all of the <code>TChain</code>s in the loaded ROOT file. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00091">91</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a72fe36425b77dd4dbfd87c93d2d1965e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72fe36425b77dd4dbfd87c93d2d1965e">&#9670;&nbsp;</a></span>HasChain()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const bool BOSSOutputLoader::HasChain </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>chainName</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if file has chain with name <code>chainName</code>. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00106">106</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a6e2e3f05b3ddb07c5f202f0c5cf97925"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e2e3f05b3ddb07c5f202f0c5cf97925">&#9670;&nbsp;</a></span>LoadChains()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BOSSOutputLoader::LoadChains </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>print_branches</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>print_averages</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a list of <code>TChain</code>s based on the files in the directory you are loading. </p>
<p>If the ROOT <code>TFile</code> could be successfully loaded, this method will generate a <code>unordered_map</code> of pointers to all <code>TChain</code>s in the main folder of the ROOT file. The first file in the directory is used to make an inventory of all <code>TTree</code>s within the file. </p>
<ol type="1">
<li>Check whether there are files in the <code>fFileNames</code> list.</li>
<li>Load first ROOT file <code>fFileNames</code> list.</li>
<li>Go through keys in the file and add create <code><a class="el" href="classChainLoader.html" title="A container class for a TChain that allows easy access to its branches. ">ChainLoader</a></code> if the key is a <code>TTree</code>.</li>
</ol>
<ul>
<li>
<p class="startli">Attempt to cast loaded <code>TObject</code> to <code>TKey</code>.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Read <code>TKey</code> and attempt to cast to <code>TTree</code>.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Create <code><a class="el" href="classChainLoader.html" title="A container class for a TChain that allows easy access to its branches. ">ChainLoader</a></code> object (with underlying <code>TChain</code>) from the loaded <code>TTree</code>.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Loop over file names and at them to the <code><a class="el" href="classChainLoader.html" title="A container class for a TChain that allows easy access to its branches. ">ChainLoader</a></code> object.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Book branches using <code><a class="el" href="classChainLoader.html#ad93ba90c4a626e758b98a29f4729bf70" title="Automatically book addresses for all branches of the underlying TChain. The branches are accessible b...">ChainLoader::BookAddresses</a></code>.</p>
<p class="endli"></p>
</li>
</ul>
<ol type="1">
<li>Print terminal output </li>
</ol>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00422">422</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a7dabf46d21a855f9a714179c0dbb8dcb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dabf46d21a855f9a714179c0dbb8dcb">&#9670;&nbsp;</a></span>operator[]()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classChainLoader.html">ChainLoader</a>&amp; BOSSOutputLoader::operator[] </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>chainName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8h_source.html#l00065">65</a> of file <a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>.</p>

</div>
</div>
<a id="a807591427984893d638714c96a1479bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a807591427984893d638714c96a1479bc">&#9670;&nbsp;</a></span>Print() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BOSSOutputLoader::Print </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print information about all trees in the <code>TFile</code>. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00113">113</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="ad765f5b4b8f81b3c36cfff1bbfd96261"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad765f5b4b8f81b3c36cfff1bbfd96261">&#9670;&nbsp;</a></span>Print() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BOSSOutputLoader::Print </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameOfTree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Option_t *&#160;</td>
          <td class="paramname"><em>option</em> = <code>&quot;toponly&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print information about a certain tree. </p>
<p>This function loops over the <code>unordered_map</code> of file names and over thes <code>unordered_map</code> of trees and prints its name and number of events. For each tree, information about its branches is also printed. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00152">152</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a338edf7defc51792b6fb191e6bc04c5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a338edf7defc51792b6fb191e6bc04c5c">&#9670;&nbsp;</a></span>PrintCutFlow()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BOSSOutputLoader::PrintCutFlow </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Method that prints the number of entries of each <code>TChain</code> in the ROOT file. This allows you to get an idea of the cut flow of the original macro. (Of course, have a look at your original source code <code>.cxx</code> to see what these numbers mean.) </p>
<ol type="1">
<li>Write number of entries per <code>TChain</code>.</li>
</ol>
<p>Do not print <code>"_cutvalues"</code> branch</p>
<ol type="1">
<li>If there is a <code>TChain</code> called <code>"_cutvalues"</code>, print these values and names as well using <code>PrintCuts</code>. </li>
</ol>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00163">163</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="a0a757c913adfb8b45acdc4da2c1914a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a757c913adfb8b45acdc4da2c1914a5">&#9670;&nbsp;</a></span>PrintCuts()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTable.html">Table</a> BOSSOutputLoader::PrintCuts </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>print</em> = <code>true</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function creates a <code>list</code> of <code>TableEntry</code>s from the <code>"_cutvalues"</code> branch which is then printed. The function is backward compatible with older versions of BOSS IniSelect output. </p>
<ol>
<li>
<p class="startli"><b>Abort</b> if there is no <code>TChain</code> <code>"_cutvalues"</code> or if it is empty.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Determine version.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Fill table.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli"><b>CASE1</b>. If <code>"_cutvalues"</code> contains a branch called <code>"index"</code>, assume that the <code>TTree</code> contains double arrays. </p><ol>
<li>
<p class="startli"><code>SetBranchAddress</code> for the array of this branch. <b>Abort</b> if <code>SetBranchAddress</code> does not return <code>0</code>.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Get the total count value by adding up each 3rd entry of the array.</p>
<p class="endli"></p>
</li>
<li>
Entry <code>0</code>: this is information written from the <code>CutObject</code> to the first file of the <code>TChain</code> loaded here. We use it to load the <code>min</code> and <code>max</code> value (array entries 0 and 1). <dl class="section see"><dt>See also</dt><dd>TrackSelector::AddAndWriteCuts</dd></dl>
</li>
<li>
<p class="startli">Drop address allocated for this branch.</p>
<p class="endli"></p>
</li>
</ol>
<p class="endli"></p>
</li>
<li>
<p class="startli"><b>CASE2</b>. If <code>"_cutvalues"</code> contains the same number of entries as the number of files in the <code>TChain</code>, <b>only</b> print a list of cut paramters and their values:</p>
<p class="endli"></p>
</li>
<li>
<p class="startli"><b>CASE3</b>. If <code>"_cutvalues"</code> contains at least 3 entries, consider entry 0 to be the <code>min</code> value, entry 1 to be the <code>max</code>, and entry 2 to be <code>count</code> (the number of events or tracks that passed the cut). </p><ol>
<li>
<p class="startli">Get values from entry 0 (<code>min</code>).</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Get values from entry 1 (<code>max</code>).</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Get values from entry 2 (<code>count</code>). In case of an <code>hadd</code>ed file, add up the values of entry 2, 5, 8, etc.</p>
<p class="endli"></p>
</li>
</ol>
<p class="endli"></p>
</li>
<li>
<p class="startli">Set headers.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Print loaded values as a table.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Reset branches to avoid a crash at the end of your executable.</p>
<p class="endli"></p>
</li>
</ol>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00185">185</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<a id="aa6b31be6592bb875b35726e05e93253d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa6b31be6592bb875b35726e05e93253d">&#9670;&nbsp;</a></span>PrintTrees()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BOSSOutputLoader::PrintTrees </td>
          <td>(</td>
          <td class="paramtype">Option_t *&#160;</td>
          <td class="paramname"><em>option</em> = <code>&quot;&quot;</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a5b0aaf2ebe76331ec2344954d62829ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b0aaf2ebe76331ec2344954d62829ae">&#9670;&nbsp;</a></span>QuickDrawAndSaveAll()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BOSSOutputLoader::QuickDrawAndSaveAll </td>
          <td>(</td>
          <td class="paramtype">Option_t *&#160;</td>
          <td class="paramname"><em>option</em> = <code>&quot;&quot;</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw the distributions of all branches available in the ROOT file. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8cxx_source.html#l00394">394</a> of file <a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a27d97a8c969aea30e646cf852667f942"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27d97a8c969aea30e646cf852667f942">&#9670;&nbsp;</a></span>fChains</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::unordered_map&lt;std::string, <a class="el" href="classChainLoader.html">ChainLoader</a>&gt; BOSSOutputLoader::fChains</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Map of <code>TChain</code>s of the loaded ROOT files (contained withing <code><a class="el" href="classChainLoader.html" title="A container class for a TChain that allows easy access to its branches. ">ChainLoader</a></code>). </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8h_source.html#l00079">79</a> of file <a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>.</p>

</div>
</div>
<a id="aa606084dd00882bf3d3c6df65bf030e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa606084dd00882bf3d3c6df65bf030e1">&#9670;&nbsp;</a></span>fDirectoryPath</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">TString BOSSOutputLoader::fDirectoryPath</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The path of the directory that was was used to load the ROOT files and generate the <code>TChain</code>s in this object. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8h_source.html#l00075">75</a> of file <a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>.</p>

</div>
</div>
<a id="a6d05057e51efd2e106695b66c7e13f69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d05057e51efd2e106695b66c7e13f69">&#9670;&nbsp;</a></span>fFileNames</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt;TString&gt; BOSSOutputLoader::fFileNames</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>List of filenames that were loaded from the directory. </p>

<p class="definition">Definition at line <a class="el" href="BOSSOutputLoader_8h_source.html#l00077">77</a> of file <a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="BOSSOutputLoader_8h_source.html">BOSSOutputLoader.h</a></li>
<li><a class="el" href="BOSSOutputLoader_8cxx_source.html">BOSSOutputLoader.cxx</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classBOSSOutputLoader.html">BOSSOutputLoader</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
